#include "glwindow.h"
#include "ui_mainwindow.h"

GLWindow::GLWindow(QWidget* parent) : QGLWidget(parent)
{
    setFormat(QGLFormat(QGL::DoubleBuffer)); // Двойная буферизация
    glDepthFunc(GL_LEQUAL); // Буфер глубины
    timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(updateGL()));
    timer->start(200);
    con = new Controller();
}

void GLWindow::setUi(Ui::MainWindow *newUi)
{
    ui = newUi;
}

void GLWindow::initializeGL()
{

}

void GLWindow::resizeGL(int nWidth, int nHeight)
{

}

void GLWindow::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // чистим буфер изображения и буфер глубины
glMatrixMode(GL_PROJECTION); // устанавливаем матрицу
glLoadIdentity(); // загружаем матрицу
//glOrtho(0,wax,way,0,1,0); // подготавливаем плоскости для матрицы
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
qglColor(Qt::white);
makeCurrent();
swapBuffers();
//s += con->cur.Comb;
//s += "p";
ui->label->setText(s);
}

void GLWindow::keyPressEvent(QKeyEvent *ke)
{
    if (ke->isAutoRepeat())
        return;
    con->keyPress((char)ke->nativeVirtualKey());
    s = con->cur.Comb;
    ui->label->setText(s);
}

void GLWindow::keyReleaseEvent(QKeyEvent *ke)
{
    if (ke->isAutoRepeat())
        return;
    con->keyRelise((char)ke->nativeVirtualKey());
    s = con->cur.Comb;
    ui->label->setText(s);
}

void GLWindow::mouseMoveEvent(QMouseEvent *me)
{

}

void GLWindow::mousePressEvent(QMouseEvent *me)
{

}

void GLWindow::mouseReleaseEvent(QMouseEvent *me)
{

}
